package newBee.class3;

import common.ArrayUtils;

/**
 * 一维差分
 * <p>
 * 原数组：arr = [0,0,0,0,0,0,0,0,0]
 * <p>
 * 操作：
 * 1.对2~5进行 +3
 * 2.对1~6进行 -2
 * 3.对4~7进行 +5
 * <p>
 * 结果：arr = [0,-2,1,1,6,6,3,5,0]
 */
public class Code01_diff {
    public static void main(String[] args) {
        // {数值，起始，结束}
        int[][] matrix = new int[][]{
                {2, 3, 5}, {1, 4, 5}
        };
        int[] arr = new int[10];
        /**
         *  arr[3] += 2;
         *  arr[5 + 1] -= 2;
         *  arr[4] += 1;
         *  arr[5 + 1] -= 1;
         */
        for (int i = 0; i < matrix.length; i++) {
            int[] m = matrix[i];
            arr[m[1]] += m[0];
            arr[m[2] + 1] -= m[0];
        }
        ArrayUtils.printArr(arr);

        for (int i = 1; i < arr.length; i++) {
            arr[i] += arr[i - 1];
        }
        ArrayUtils.printArr(arr);

    }
}
